/**
 * AddProveedorAction.java
 * Action que da de alta un nuevo Proveedor.
 * @author Esther García Galán
 * @author Rubén Gómez Vales
 */
package ocio.actions;  

import java.util.ArrayList;
import java.util.List;
import ocio.beans.Proveedor;
import ocio.beans.Usuario;
import ocio.services.UsuarioService;
import ocio.services.ProveedorService;
import ocio.services.ServiceLocator;

import com.opensymphony.xwork2.ActionSupport;

/**
 * Clase destinataria de petición de alta de un nuevo proveedor.
 * @author Esther García Galán
 * @author Rubén Gómez Vales
 * @version 1.0 13/05/2014
 * @see ocio.beans.Proveedor
 */
public class AddProveedorAction extends ActionSupport {

	private static final long serialVersionUID = 1L;
	
	private String correo;
	private String password;
	private String passwordbis;
	private int rol;
	private String nombre;
	private String apellidos;
	private String nif;
	private String telefono;
	private int tipo;
	private List<Proveedor> listaProveedores = new ArrayList<Proveedor>();
    private String mensaje;
  	
    /**
	 * Método execute() de la clase ActionSupport de Struts 2. 
	 * Comprueba que no hay otro usuario con el mismo correo electrónico y solicita las servicios
	 * para dar de alta el nuevo proveedor.
	 * @return un string que indica la respuesta de la acción ejecutada sobre la petición del usuario
	 */
	public String execute(){	
		
		this.setRol(3); //El rol de proveedpor es 3.
		
		ServiceLocator serviceLocator = ServiceLocator.getServiceLocator();
		ProveedorService proveedorService = (ProveedorService)serviceLocator.getService("Proveedor");
		UsuarioService usuarioService = (UsuarioService)serviceLocator.getService("Usuario");

		Usuario usuAux = new Usuario();
		usuAux.setCorreo(this.correo);
		if (usuarioService.searchByFields(usuAux).size()==0) {
			   proveedorService.add(this);
			   this.listaProveedores=proveedorService.ListAllProveedores();
			   return "success";	
		} else {
			mensaje="Ya existe un usuario con ese correo electrónico";
			return "input";
		}
		
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	
	public String getTelefono() {
		return telefono;
	}

	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}

	public String getApellidos() {
		return apellidos;
	}

	public void setApellidos(String apellidos) {
		this.apellidos = apellidos;
	}

	public String getNif() {
		return nif;
	}

	public void setNif(String nif) {
		this.nif = nif;
	}

	public String getCorreo() {
		return correo;
	}

	public void setCorreo(String correo) {
		this.correo = correo;
	}

	public int getRol(){
		return rol;
	}
	
	public void setRol(int rol){
		this.rol=rol;
	}

	public String getPasswordbis() {
		return passwordbis;
	}

	public void setPasswordbis(String passwordbis) {
		this.passwordbis = passwordbis;
	}
	
	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}
	
	public List<Proveedor> getListaProveedores() {
		return listaProveedores;
	}

	public void setListaProveedores(List<Proveedor> listaProveedores) {
		this.listaProveedores = listaProveedores;
	}

	public int getTipo() {
		return tipo;
	}

	public void setTipo(int tipo) {
		this.tipo = tipo;
	}

	public String getMensaje() {
		return mensaje;
	}

	public void setMensaje(String mensaje) {
		this.mensaje = mensaje;
	}
	
}
